/*******************/
/* APPLE FUNCTIONS */

function showBack() {
	// fixes a bug that keeps the rollies showing
	exitflip();
	exitsnap();
	
	var front = document.getElementById("front");
	var back = document.getElementById("back");
	if (window.widget) widget.prepareForTransition("ToBack");
	front.style.display="none";
	back.style.display="block";
	if (window.widget) setTimeout (function () {
		widget.performTransition();
	}, 0);
}

function hideBack() {
	var front = document.getElementById("front");
	var back = document.getElementById("back");
	if (window.widget) widget.prepareForTransition("ToFront");
	back.style.display="none";
	front.style.display="block";
	if (window.widget) setTimeout (function () {
		widget.performTransition();
		IPLOCATOR.focus();
	}, 0);
}

var flipShown = false;
var animation = {duration:0, starttime:0, to:1.0, now:0.0, from:0.0, firstElement:null, timer:null};

function mousemove(event) {
	if (!flipShown) {
		if (animation.timer != null) {
			clearInterval (animation.timer);
			animation.timer  = null;
		}
		var starttime = (new Date).getTime() - 13;
		animation.duration = 500;
		animation.starttime = starttime;
		animation.firstElement = document.getElementById("flip");
		
		// added by me
		animation.secondElement = document.getElementById("snap");
		
		animation.timer = setInterval ("animate()", 13);
		animation.from = animation.now;
		animation.to = 1.0;
		animate();
		flipShown = true;
		
		snapShown = true;
	}
}

function mouseexit(event) {
	if (flipShown) {
		// fade in the info button
		if (animation.timer != null) {
			clearInterval (animation.timer);
			animation.timer  = null;
		}
		var starttime = (new Date).getTime() - 13;
		animation.duration = 500;
		animation.starttime = starttime;
		animation.firstElement = document.getElementById("flip");
		
		// added by me
		animation.secondElement = document.getElementById("snap");
		
		animation.timer = setInterval ("animate()", 13);
		animation.from = animation.now;
		animation.to = 0.0;
		animate();
		flipShown = false;
		
		snapShown = false;
	}
}

function animate() {
	var T;
	var ease;
	var time = (new Date).getTime();
	T = limit_3(time-animation.starttime, 0, animation.duration);
	
	if (T >= animation.duration) {
		clearInterval (animation.timer);
		animation.timer = null;
		animation.now = animation.to;
	} else {
		ease = 0.5 - (0.5 * Math.cos(Math.PI * T / animation.duration));
		animation.now = computeNextFloat (animation.from, animation.to, ease);
	}
	animation.firstElement.style.opacity = animation.now;
	
	// added by me
	animation.secondElement.style.opacity = animation.now;
}

function limit_3 (a, b, c) {
	return a < b ? b : (a > c ? c : a);
}

function computeNextFloat (from, to, ease) {
	return from + (to - from) * ease;
}

function enterflip(event) {
	document.getElementById("fliprollie").style.display = "block";
}

function exitflip(event) {
	document.getElementById("fliprollie").style.display = "none";
}

// added by me
function entersnap(event) {
	document.getElementById("snaprollie").style.display = "block";
}

// added by me
function exitsnap(event) {
	document.getElementById("snaprollie").style.display = "none";
}
